#!/bin/bash

# 脚本名称: generate_patch_sml.sh
# 功能: 生成一个 patch，将 CMakeLists.txt 中的 GitHub 链接替换为 Gitee 链接
# 作者: Sebastian

# 设置变量
ARCHIVE="ros-jazzy-boost-sml-vendor-1.1.11.tar.gz"
SOURCE_DIR="ros-jazzy-boost-sml-vendor-1.1.11"
PATCH_FILE="replace_github_with_gitee_sml.patch"

# 1. 解压源文件（如果目录不存在）
if [ ! -d "$SOURCE_DIR" ]; then
    echo "解压 $ARCHIVE..."
    tar -xzf "$ARCHIVE"
    if [ $? -ne 0 ]; then
        echo "❌ 解压失败，请检查压缩包路径和文件名。"
        exit 1
    fi
else
    echo "📂 源目录已存在，跳过解压步骤。"
fi

# 2. 进入解压后的目录
cd "$SOURCE_DIR" || { echo "❌ 目录 $SOURCE_DIR 不存在，脚本退出。"; exit 1; }

# 3. 备份 CMakeLists.txt
echo "📑 备份 CMakeLists.txt..."
cp CMakeLists.txt CMakeLists.txt.bak

# 4. 替换 GitHub 链接为 Gitee 链接
echo "🔄 替换 GitHub 链接为 Gitee 链接..."
sed -i 's|https://github.com/boost-ext/sml.git|https://gitee.com/microseyuyu/sml.git|g' CMakeLists.txt

# 5. 生成 patch 文件
echo "🛠️ 生成 patch 文件..."
diff -u CMakeLists.txt.bak CMakeLists.txt > "../$PATCH_FILE"

# 6. 清理临时文件
echo "🧹 清理临时文件..."
mv CMakeLists.txt.bak CMakeLists.txt
cd ..

# 7. 完成提示
echo "✅ Patch 文件已生成: $PATCH_FILE"
echo "💡 请使用以下命令应用补丁："
echo "patch -p1 < $PATCH_FI"
